草庐IT

JSON omitempty 带 time.Time 字段

全部标签

go - 如何保证结构字段的存在,就像接口(interface)对方法所做的那样?

我有几个交易结构:SpendTxNameTransferTxNameUpdateTx...我想估计这些结构的大小,不包括费用字段。他们都有一个Fee结构字段。目前,对于每个结构我都有这个方法:func(tx*NameTransferTx)sizeEstimate()(int,error){feeRlp,err:=rlp.EncodeToBytes(tx.Fee)iferr!=nil{return0,err}feeRlpLen:=len(feeRlp)rlpRawMsg,err:=tx.RLP()iferr!=nil{return0,err}returnlen(rlpRawMsg)-fe

Gorm 计数预加载字段

我使用带有GoLang和Echo框架的Postgres作为我的基础,我使用Gorm来构建我的数据库查询。这是我的个人资料模型,typeProfilestruct{gorm.ModelInvoiceCountuint`gorm:"-"`CompanyNamestring`gorm:"size:255"`CompanyNumberstring`gorm:"size:10"`CompanyVatNumberstring`gorm:"size:10"`DateAddedtime.Time`gorm:"type:date"`PrimaryEmailstring`gorm:"size:255"`I

time - 在 Go 中将 UTC 时间转换为 "local"时间

如何将UTC时间转换为本地时间?我已经为我需要本地时间的所有国家/地区创建了一个具有UTC差异的map。然后我将该差异作为持续时间添加到当前时间(UTC)并打印结果,希望这是该特定国家/地区的本地时间。由于某些原因,结果是错误的。例如Hungary有一个小时的差异。知道为什么我会得到不正确的结果吗?packagemainimport"fmt"import"time"funcmain(){m:=make(map[string]string)m["Hungary"]="+01.00h"offSet,err:=time.ParseDuration(m["Hungary"])iferr!=ni

amazon-web-services - 有没有什么方法可以为 CloudWatch Logs 的系统字段设置值?

我想在lambda执行中为字段@requestId设置值,因为在源代码中显式输出的日志不包含@requestId字段值。我读过anarticle并尝试输出如下日志,但@requestId未被填充。fmt.Print(`{"requestId":"comeon!!"}`)下面的代码都不是。fmt.Print(`{"@requestId":"comeon!!"}`)系统字段是否受到保护? 最佳答案 当触发AWSLambda函数时,context元素会传递给该函数。来自AWSLambdaFunctionHandlerinGo-AWSLam

json - 如何在 Go 中动态处理 JSON 响应中缺失的字段

我正在为API开发Go包装器,我注意到两个JSON字段在没有任何数据时保持为空。基本上,API会返回有关给定url的一组信息,如果至少访问过一次,则一切正常,我会得到一个完整的json,然后将其解码为一个结构:{"stats":{"status":1,"date":"09.07.2019","title":"Test","devices":{"dev":[{"tag":"Desktop"}],"sys":[{"tag":"GNU/Linux"},{"tag":"Windows10"}],"bro":[{"tag":"Firefox67.0"},{"tag":"Chrome62.0"}]

templates - 如何使用结构或变量值的字段作为模板名称?

我们可以通过{{define"home"}}定义模板名称,然后通过{{template"home"}}将其加载到其他(父)模板中>.如何通过变量值{{template.TemplateName}}加载模板。或者这是不可能的? 最佳答案 很遗憾,你不能。{{template}}操作的语法:{{template"name"}}Thetemplatewiththespecifiednameisexecutedwithnildata.{{template"name"pipeline}}Thetemplatewiththespecifiedn

amazon-web-services - DynamoDB Marshal 和 unmarshal golang time.Time 自纪元以来以毫秒为单位

SDK默认将time.Time值编码为RFC3339字符串。您如何选择以其他方式编码和解码,例如自纪元以来毫秒?SDK提到了Marshaler和Unmarshaler接口(interface),但没有解释如何使用它们。 最佳答案 (当我正要发布我的问题时,我通过研究UnixTime的工作原理找到了答案)。要使用自定义Marshaler和Unmarshaler,您可以创建自定义类型。typeMillisTimetime.Timefunc(eMillisTime)MarshalDynamoDBAttributeValue(av*dyna

go - 如何在 Proto3 中为 HTTP 响应创建一个可空字段?

我想返回一个对象作为HTTP响应,其中一个字段可以为空。问题是proto3不会让我轻易做到。发生这种情况是因为我将字符串指针解析为字符串,因此当指针指向null时会产生此错误运行时错误:无效内存地址或nil指针取消引用我尝试至少通过从Internet上学到的这两个解决方法来解决这个问题。1。使用一个exercise.proto(消息定义)messageExercisesData{stringSerial=1[json_name="serial"];stringTitle=2[json_name="title"];oneofOptionalSubmissionSerial{stringS

Angular 8 前端不将捕获的数据/字段发送到后端

我目前正在重写一个应用程序,该应用程序将具有Angular8前端(在我编写代码时学习),该前端将与连接到MSSQL数据库的Go后端进行交互。我可以成功显示来自数据库的数据。但是,当尝试更新收到的数据时,字段/数据似乎没有发送到Go后端。我已经使用Postman测试了Go后端API并且工作正常。关于下面的代码可能有什么问题或者我可以做些什么来调试它有什么建议吗?rest-api.service.tshttpOptions={headers:newHttpHeaders({'Content-Type':'application/json'//'Content-Type':'Applicat

mongodb - 将 mgo 用于嵌套文档字段

我将Golang与用于mongodb的mgo驱动程序一起使用。根据http://labix.org/mgo中的示例一切都很好。但是我找不到任何文档说明mgo如何支持“点符号”以便能够设置和删除嵌套字段。那么,如何访问嵌套字段?还有一个问题是关于goLangnameconvention的。当我用s.FindId(...).One(&doc)填充我的结构时,doc是否可以包含小写名称的字段,例如“timer”而不是“Timer”?mgo是否有可能从mongo获取非结构化文档并只返回map[string]string? 最佳答案 参见mg